[build] Do not do process isolation on win or mac #3441
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
multiprocess defaults to spawn on macs and fork on linux, and I think sphinx makes everything in conf.py be in the main module even if you import from another file so its not picklable, so you get errors like
or if you try to put call_fn in a different file:
Mac does have fork, but MPS doesn't, and windows doesn't support fork, so don't monkey patch if on either of these platforms
Testing: Ran
make html-noplot
and saw that it got past the place it originally errored. Not testable in CI because we don't currently have mac builds in CINotes:
multiprocess + mac wants spawn b/c MPS stuff -> needs to be picklable -> some inputs to generate file rst not pickleable
Could probably manually pickle with cloudpickle since sphinx gallery later versions use joblib which use cloudpickle but this seems like overkill